﻿

namespace Mulala.Cavan.Application.MainBoundedContext.CorporationModule
{
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using Mulala.Cavan.Application.Seedwork;
    using Mulala.Cavan.Domain.MainBoundedContext.CorporationModule;
    using Mulala.Cavan.Domain.MainBoundedContext.SearchModule;
    using Mulala.Cavan.Domain.Seedwork;
    using Mulala.Cavan.Domain.MainBoundedContext.AttachmentModule;

    public interface ICorporationAppService : IBaseAppService<Corporation, CorporationSearch>
    {
        BoolGenericResult<Attachment> UpdateCorporationLogo(Corporation changedCorporation, string fileUrl, string fileName);

        BoolGenericResult<Attachment> UpdateCorporationPhoto(Corporation changedCorporation, int photoID, string fileUrl, string fileName);

        BoolGenericResult<Attachment> UpdateCorporationCertification(Corporation changedCorporation, int certificationID, string fileUrl, string fileName);

        bool UpdateCorporationStatus(CorporationStatus changedCorporationStatus);

        IList<Corporation> GetCorporationsByKeyword(string keyword, int currentPage, out long total);

        BoolGenericResult<CorporationStatus> UpdateCorporationRefreshTime(Corporation changedCorporation);

        Corporation GetCorporationById(int id);
    }
}
